package de.preisrobot.entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="artikelproperties")
//@Table(name="artikelproperties", uniqueConstraints={@UniqueConstraint(columnNames={"hauptkategorie,bezeichnung,wert"})})
public class ArtikelProperty implements Serializable
{

   private static final long serialVersionUID = 1L;

   @Id
   private long id ;
   
   private int sortierung;
   
   private String hauptkategorie ="";
   
   private String bezeichnung ="";
   
   private String wert ="";

   public long getId()
   {
      return id;
   }

   public void setId(long id)
   {
      this.id = id;
   }

   
   public String getBezeichnung()
   {
      return bezeichnung;
   }

   public void setBezeichnung(String bezeichnung)
   {
      this.bezeichnung = bezeichnung;
   }

   public String getWert()
   {
      return wert;
   }

   public void setWert(String wert)
   {
      this.wert = wert;
   }

   public void setHauptkategorie(String hauptkategorie)
   {
      if(null == hauptkategorie)
         this.hauptkategorie ="";
      else
      this.hauptkategorie = hauptkategorie;
   }

   public String getHauptkategorie()
   {
      return hauptkategorie;
   }

   public void setSortierung(int sortierung)
   {
      this.sortierung = sortierung;
   }

   public int getSortierung()
   {
      return sortierung;
   }
    
   @Override
   public String toString()
   {
      return id+" "+hauptkategorie+" "+bezeichnung+" "+wert;
   }

   @Override
   public int hashCode()
   {
      final int prime = 31;
      int result = 1;
      result = prime * result + ((bezeichnung == null) ? 0 : bezeichnung.hashCode());
      result = prime * result + ((hauptkategorie == null) ? 0 : hauptkategorie.hashCode());
      result = prime * result + (int) (id ^ (id >>> 32));
      result = prime * result + sortierung;
      result = prime * result + ((wert == null) ? 0 : wert.hashCode());
      return result;
   }

   @Override
   public boolean equals(Object obj)
   {
      if (this == obj)
         return true;
      if (obj == null)
         return false;
      if (getClass() != obj.getClass())
         return false;
      ArtikelProperty other = (ArtikelProperty) obj;
      if (bezeichnung == null)
      {
         if (other.bezeichnung != null)
            return false;
      }
      else if (!bezeichnung.equals(other.bezeichnung))
         return false;
      if (hauptkategorie == null)
      {
         if (other.hauptkategorie != null)
            return false;
      }
      else if (!hauptkategorie.equals(other.hauptkategorie))
         return false;
      if (id != other.id)
         return false;
      if (sortierung != other.sortierung)
         return false;
      if (wert == null)
      {
         if (other.wert != null)
            return false;
      }
      else if (!wert.equals(other.wert))
         return false;
      return true;
   }

}
